package com.security.service;

import com.common.util.StringUtil;
import lombok.Data;

/**
 * 认证中心相关URL管理<br>
 * TODO: 如果认证中心URL改动,这里需要同步处理
 * @author 大忽悠
 * @create 2022/11/28 9:59
 */
@Data
public class AuthenticateUrlManager {
    /**
     * 认证中心ip+端口
     */
    private final String authenticateCenterDomain;
    /**
     * 认证中心context-path
     */
    private static final String CONTEXT_PATH="authenticateCenter";

    public AuthenticateUrlManager(String authenticateCenterDomain) {
        this.authenticateCenterDomain = authenticateCenterDomain;
    }

    /**
     * @return 返回生成token请求URL
     */
    public String getGeneratorTokenUrl(){
        return StringUtil.urlMerge(authenticateCenterDomain,CONTEXT_PATH,"authenticate/token");
    }

    /**
     * @return 返回认证token请求URL
     */
    public String getVerifyTokenUrl(){
        return StringUtil.urlMerge(authenticateCenterDomain,CONTEXT_PATH,"authenticate/verify");
    }

    /**
     * @return 返回认证token请求URL
     */
    public String getRolesOfRequestUrl(){
        return StringUtil.urlMerge(authenticateCenterDomain,CONTEXT_PATH,"authenticate/listRolesOfRequestUrl");
    }

    /**
     * @return 返回新增用户请求URL
     */
    public String getAddUserUrl(){
        return StringUtil.urlMerge(authenticateCenterDomain,CONTEXT_PATH,"user/add");
    }

    /**
     * @return 返回为用户赋予角色的请求URL
     */
    public String getReleaseRoleToUserUrl(){
        return StringUtil.urlMerge(authenticateCenterDomain,CONTEXT_PATH,"role/releaseByNameList");
    }

    /**
     * @return 返回修改用户名的请求URL
     */
    public String getUpdateUserNameUrl(){
        return StringUtil.urlMerge(authenticateCenterDomain,CONTEXT_PATH,"user/updateName");
    }

    /**
     * @return 返回删除用户的请求URL
     */
    public String getDelUserUrl(){
        return StringUtil.urlMerge(authenticateCenterDomain,CONTEXT_PATH,"user/delByName/{username}");
    }
}
